WiringPiとPythonでGPIOを制御する
前回はWiringPiというライブラリをインストールして、CLIからGPIOを操作した。今回はPythonのコードでWiringPiを使ってLEDを点滅させてみる。これでやっと堂々とLチカやりました!と言える…笑
※前回も書いたが、WiringPiは2019年で作者による開発が停止されているので今後使う予定の人はご注意を。
回路は前回同様、以下のセットを使ってブレッドボード上につくる。
実行環境
Raspberry Pi 4 Model B
Raspberry Pi OS (Bullseye)
wiringpi 2.60.1 (Python package)
Python 3.9.2
ブレッドボードに回路をつくる
毎度おなじみの回路。LEDと抵抗をラズベリーパイの35pin(GPIO 19)と39pin(GND)に接続した。抵抗値は330Ω。
WiringPiのPythonパッケージをインストール
まずPythonについては、最近のRaspberry Pi OSをインストールしていればptyhon3が最初からインストールされている。ためしにCLIから以下のコマンドでpythonのversionを確認したところ、version 3.9.2がインストールされていた。
$ python -V Python 3.9.2
次に、WiringPiのpythonパッケージをインストールする。
$sudo pip3 install wiringpi
※ちなみに、以下のpypiのサイトにも書かれているように、pipでインストールされるpythonパッケージは公式のものではなく有志によりつくられているようだ。versionも前回インストールした公式のものとは異なっている。
https://pypi.org/project/wiringpi/
Python3のコードを書く
今回は以下のwiringpi_led.pyという0.5秒ごとにGPIO 19を点滅させるコードを書いたので、こちらを実行してLチカをやってみる。
#!/usr/bin/env python3 import wiringpi as gpio import time led_gpio = 19 gpio.wiringPiSetupGpio() gpio.pinMode(led_gpio, 1) while True: gpio.digitalWrite(led_gpio, 1) time.sleep(0.5) gpio.digitalWrite(led_gpio, 0) time.sleep(0.5)
WiringPiの使い方についてはpypiのサイトに書いてあるし、WiringPiの本家の公式サイトのfunctionsが踏襲されているのでそちらを参照。
あとはコードが置いてあるディレクトリで以下を実行すればOK。
$ sudo python wiringpi_led.py
以下が光らせてみた様子。
モーニングLチカ pic.twitter.com/C7CBg7Jas8
— Wakky (@wakky_free) April 28, 2022
これで目的は達成。今回はPythonのコードを実行したが、C言語のコードをコンパイルして動かすのもやってみたいので、次回は同じ動作をC言語でやってみたいと思う。
日記まとめ
ラズパイで遊んでみた軌跡を以下でまとめてます。